package com.nightsoul.hadoop1.test.mapreduce;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;

/**
 * JobConf对象指定了作业的各种参数。它授予你对整个作业如何运行的控制权。当我们在Hadoop集群上运行这个作业时，我们把代码打包成一个jar文件，hadoop会在集群分九这个jar包。
 * 例子中，我们没有明确指定jar文件的名称，而是在JobConf构造方法中传送一个类，Hadoop会找到这个包售此类的jar文件。
 * 运行命令：
 * # export HADOOP_CLASSPATH=hadoop1-test-1.0.0-SNAPSHOT.jar
 * # hadoop com.nightsoul.hadoop1.test.mapreduce.MaxTemperature /input/010010-99999-2008 /output
 * 
 * 备注输入与输出路径均为hdfs文件系统路径
 * 
 * @author zj
 *
 */
public class MaxTemperature {

	public static void main(String[] args) throws Exception {
		
		JobConf conf = new JobConf(MaxTemperature.class);
		conf.setJobName("Max temperature");
		
		FileInputFormat.addInputPath(conf, new Path(args[0]));
		FileOutputFormat.setOutputPath(conf, new Path(args[1]));
		conf.setMapperClass(MaxTemperatureMapper.class);
		conf.setReducerClass(MaxTemperatureReduce.class);
		conf.setOutputKeyClass(Text.class);
		conf.setOutputValueClass(IntWritable.class);
		
		JobClient.runJob(conf);
	}

}
